puts a val into port. nil values are not allowed. Will block if no buffer space is available. Returns true unless port is already closed. Not intended for use in direct or transitive calls from (go ...) blocks. Use the clojure.core.async.go-checking flag to detect invalid use (see namespace docs).